<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Map3D - ECHARTS-GL</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes"> <!-- Fullscreen Landscape on iOS -->
    <link rel="stylesheet" href="./common.css">
</head>
<body>
<div id="main"></div>
<script src="../node_modules/echarts/dist/echarts.js"></script>
<script src="../dist/echarts-gl.js"></script>
<script src='../node_modules/maptalks/dist/maptalks.js'></script>
<script src="./lib/jquery.min.js"></script>
<script src="./lib/dat.gui.js"></script>
<script src="js/commonUI.js"></script>
<script>
    var chart = echarts.init(document.getElementById('main'));

    chart.showLoading();
    $.getJSON('./data/buildings.json', function (buildingsGeoJSON) {
        chart.hideLoading();

        var regions = echarts.parseGeoJson(buildingsGeoJSON);
        var polygonsData = buildingsGeoJSON.features.map(function (feature, idx) {
            var region = regions[idx];
            return {
                coords: region.geometries.map(function (geo) {
                    return [geo.exterior].concat(geo.interiors);
                }),
                value: Math.random(),
                height: +feature.properties.height * 10 + 0.1
            };
        });

        chart.setOption({
            maptalks3D: {
                center: [13.409779, 52.520645],
                zoom: 14,
                pitch: 50,
                bearing: -10,
                urlTemplate: 'http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png',
                postEffect: {
                    enable: true,
                    screenSpaceAmbientOcclusion: {
                        enable: true,
                        intensity: 1.2,
                        radius: 5
                    },
                    screenSpaceReflection: {
                        enable: true
                    }
                },
                temporalSuperSampling: {
                    enable: true
                },
                light: {
                    main: {
                        intensity: 1,
                        shadow: false,
                        shadowQuality: 'high'
                    },
                    ambient: {
                        intensity: 0.
                    },
                    ambientCubemap: {
                        texture: './asset/pisa.hdr',
                        exposure: 1,
                        diffuseIntensity: 0.5,
                        specularIntensity: 2
                    }
                }
            },
            series: [{
                type: 'polygons3D',
                coordinateSystem: 'maptalks3D',
                data: polygonsData,
                shading: 'realistic',
                silent: true,
                multiPolygon: true,
                progressiveThreshold: 500,
                progressive: 500,
                itemStyle: {
                    borderColor: [0, 2, 10],
                    borderWidth: 0
                },
                realisticMaterial: {
                    metalness: 1,
                    roughness: 0.4,
                    textureTiling: [10, 10]
                }
            }]
        });
    });

    window.addEventListener('resize', function () {
        chart.resize();
    });

</script>
</body>
</html>
